package com.baicaoyuan.web.common.relation;


import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * lfx
 */
public class UserNodeRecursion {
    //子节点
    List<RelationCache.node> childNode = new ArrayList<>();


    /**
     * 获取某个父节点下面的所有子节点
     *
     * @param userList
     * @param userId
     * @return
     */
    public List<RelationCache.node> treeUnderPid(List<RelationCache.node> userList, Long userId) {
        for (RelationCache.node u : userList) {
            //遍历出父id等于参数的id，add进子节点集合
            if (u.getPid() == userId) {
                //递归遍历下一级
                treeUnderPid(userList, u.getId());
                childNode.add(u);
            }
        }
        return childNode;
    }

    /**
     * 直接下线用户
     *
     * @param userList 集合
     * @param userId
     * @return
     */
    public List<RelationCache.node> treeUnderPidDirect(List<RelationCache.node> userList, Long userId) {
        return userList.stream().filter(x -> x.getPid() == userId).collect(Collectors.toList());
    }
}


